package com.apartment.own.response.bill;

import com.apartment.common.core.domain.entity.SysUser;
import com.apartment.own.domain.*;
import com.fasterxml.jackson.annotation.JsonFormat;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author sxy
 * @version 1.0
 * @date 2020/9/12 0012 上午 11:31
 */
@Data
@ApiModel("流水回参")
public class BillsResp implements Serializable {
    /**
     * ID
     */
    @ApiModelProperty("ID")
    private String id;

    /**
     * 删除标志（0代表存在 1代表删除）
     */
    @ApiModelProperty("删除标志（0代表存在 1代表删除）")
    private String delFlag;

    /**
     * 支付时间
     */
    @ApiModelProperty("支付时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;

    /**
     * 关联房间id
     */
    @ApiModelProperty("关联房间id")
    private String houseResourceId;

    /**
     * 房间名(1-等我1号1单元1)
     */
    @ApiModelProperty("房间名")
    private String houseResourceName;

    /**
     * 关联用户id
     */
    @ApiModelProperty("关联用户id")
    private String ouUserId;

    /**
     * 用户姓名
     */
    @ApiModelProperty("用户姓名")
    private String ouUserName;

    /**
     * 字典来源表
     */
    @ApiModelProperty("枚举来源")
    private Integer source;

    /**
     * 合同id
     */
    @ApiModelProperty("合同id")
    private String billResContractId;

    /**
     * 合同名称(区分租客合同,业主合同)
     */
    @ApiModelProperty("合同名称")
    private String contractSurfaceName;

    /**
     * 账单详情id
     */
    @ApiModelProperty("账单详情id")
    private Long accountInstallmentId;

    /**
     * 0-支出,1-收入
     */
    @ApiModelProperty("0-支出,1-收入")
    private Integer inAndOut;

    /**
     * 支付方式
     */
    @ApiModelProperty("支付方式")
    private Integer payType;

    /**
     * 收款人员工id
     */
    @ApiModelProperty("收款人员工id")
    private Long payeeSysUserId;
    /**
     * 收款员工姓名
     */
    @ApiModelProperty("收款员工姓名")
    private String payeeSysUserName;

    /**
     * 账号
     */
    @ApiModelProperty("账号")
    private String accountNumber;

    /**
     * 经办人id
     */
    @ApiModelProperty("经办人id")
    private String handleSysUserId;

    /**
     * 经办人姓名
     */
    @ApiModelProperty("经办人姓名")
    private String handleSysUserName;

    /**
     * 支付金额
     */
    @ApiModelProperty("支付金额")
    private BigDecimal money;

    /**
     * 支付凭证
     */
    @ApiModelProperty("支付凭证")
    private String paymentDocument;

    /**
     * 流水状态 0-待审批,1-已通过,2-已驳回
     */
    @ApiModelProperty("流水状态 0-待审批,1-已通过,2-已驳回,3-已完成")
    private Integer waterBillStatus;

    /**
     * 提交时间
     */
    @ApiModelProperty("提交时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date submitTime;

    /**
     * 审核时间
     */
    @ApiModelProperty("审核时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date reviewTime;

    /**
     * 流水类型(租金·1期,押金)
     */
    @ApiModelProperty("流水类型(租金·1期,押金)")
    private String accountTypeName;

    /**
     * 房间详情
     */
    @ApiModelProperty("房间信息")
    private OwnResHouseRoomConf ownResHouseRoomConf;

    /**
     * 租客合同
     */
    @ApiModelProperty("租客合同")
    private OwnOrdTenantContract rentContract;

    /**
     * 业主合同
     */
    @ApiModelProperty("业主合同")
    private OwnResHouseContract houseContract;

    /**
     *  用户
     */
    //todo 用户表

    /**
     *  经办人(员工)
     */
    @ApiModelProperty("经办员工")
    private SysUser sysUser;

    /**
     * 账单详情
     */
    @ApiModelProperty("账单分期详情")
    private List<OwnAccountInstallment> accountInstallments;

    /**
     * 账单详情
     */
    @ApiModelProperty("账单详情")
    private OwnAccountDetails accountDetails;

    /**
     * 收款人
     */
    @ApiModelProperty("收款人信息")
    private SysUser payeeUser;

    /**
     *  物业交割
     */
    @ApiModelProperty("物业交割信息")
    private List<OwnResPropertyFee> propertyFee;

    /**
     * 流水类型(租金·1期,押金)
     */
    @ApiModelProperty("流水类型(租金,押金)")
    private Integer billsType;
}
